import java.util.Map;
import java.util.List;

static class Correspondance {
  int identifiantStation;
  String nomLigne;
  String terminus;
  int type;

  Correspondance(String line) {
    String infos[] = line.split("#"); 
    identifiantStation = Integer.parseInt(infos[0]);
    String col2[] = infos[1].split("\\(");
    nomLigne = col2[0].substring(0, col2[0].length() - 1);
    terminus = col2[1];
    type = Station.getType(infos[2]);
  }

  //Retourne une map Clé : Identifiant station, Valeur : Liste de correspondances de cette station
  static Map<Integer, List<Correspondance>> chargerCorrespondances(String lines[]) {
    Map<Integer, List<Correspondance>> correspondances = new HashMap<Integer, List<Correspondance>>(); 
    for (int i = 0; i < lines.length; i++) {
      Correspondance c = new Correspondance(lines[i]);
      List<Correspondance> listC = correspondances.get(c.identifiantStation);
      if (listC == null) {
        listC = new ArrayList<Correspondance>();
      }
      listC.add(c);
      correspondances.put(c.identifiantStation, listC);
    }
    return correspondances;
  }
  
  //Retourne une map Clé : Nom ligne, liste des correspondances de cette ligne
  static Map<String, List<Correspondance>> chargerLignes(Map<Integer, List<Correspondance>> correspondances) {
    Map<String , List<Correspondance>> lignes = new HashMap<String, List<Correspondance>>(); 
    
    for(List<Correspondance> cList : correspondances.values()){
      for(Correspondance c : cList){
        List<Correspondance> ligne = lignes.get(c.nomLigne);
        if(ligne == null){
          ligne = new ArrayList<Correspondance>();
          lignes.put(c.nomLigne, ligne);
        }
        ligne.add(c);
      }
    }    
    return lignes;
  }
}

